Data communications

ABSTRACT

The present invention provides methods of, computer programs for and apparatus for control and/or observation of a device with communication capabilities by a controller device with hypertext or hypermedia communication capabilities. More particularly, but not exclusively, the present invention relates to methods of, computer programs for and apparatus for control and observation of a consumer electronics device with communications capability from a mobile controller device with hypertext or hypermedia communications capability over a proximity bearer.

RELATED APPLICATIONS

This application is a continuation application, and claims the benefit under 35 U.S.C. § 120 of application Ser. No. 10/705,260 filed on Nov. 10, 2003, which is hereby incorporated by reference herein. Application Ser. No. 10/705,260 also claimed the benefit under 35 U.S.C. § 120 of application Ser. No. 10/389,705 filed on Mar. 12, 2003, which is hereby incorporated by reference herein.

BACKGROUND OF THE INVENTION

1 . Field of the Invention

The present invention relates to methods of, computer programs for and apparatus for control and/or observation of a device with communication capabilities by a controller device with hypertext or hypermedia communication capabilities. More particular, but not exclusively, the present invention relates to methods of, computer programs for and apparatus for control and observation of a consumer electronics device with communications capability from a mobile controller device with hypertext or hypermedia communications capability over a proximity bearer.

2 . Description of the Related Technology

Techniques of remotely controlling consumer electronics devices, such as CD players are known. Conventional remote controllers are device-specific and factory-programmed—i.e. pre-programmed in an unchangeable way—to operate the particular device. Typically, such remote controllers will have keypads with buttons which, when pressed, will instruct the device to perform a particular function. Often, the remote controller will communicate with the device using Infra Red Data Association (IrDA) as the bearer medium and both the controller and the device will have IrDA communications hardware and software entities—i.e. IrDA transmitters and/or receivers, and IrDA protocol stacks. Most remote controllers have a one-way communication relationship with the device they control. Thus, instructions are sent from the remote controller to the device but data is not sent from the device back to the remote controller.

FIG. 1 is a schematic diagram showing the one-way flow of control data from the controller side (i.e. a remote controller) to the controlled side (i.e. the consumer electronics device) according to the prior art.

Controllers with two-way communications relationships with devices are known. For example, Sony™ have developed remote controllers which are factory-programmed for Sony™ devices but which have the capability of receiving status information from those devices and displaying it to a user on a display screen on the remote controller.

User-programmable remote controllers are also known. For example, the Philips Pronto™ and the Marantz™ RC500. Typically, user-programmable remote controllers are factory-programmed for particular devices but may be re-programmed by a user to function as remote controllers for new devices by either learning the control messages used by a device-specific factory-programmed remote controller (i.e. by pointing the factory-programmed remote controller IrDA transmitter at an IrDA receiver of the re-programmable controller which learns the control messages parasitically as the user exercises the control options available on the factory-programmed controller), or by connecting the re-programmable controller to a computing device, such as a personal computer (PC) and downloading control programs pre-configured for the new device from the Internet.

Consumer electronics devices connected to the Internet are known. For example, microwave ovens are known which may be connected to the Internet using a modem and the public switched telephone network (PSTN) for downloading cooking settings. Also, vending machines, such as Coke™ vending machines, are known which have connection to a data network and which include a server, such as a finger daemon server, for remote interrogation by a client device also connected to the data network. This may be used by a user of the remote client device to find out whether the Coke™ machine has any cans available for vending without the user needing to physically go to the machine.

One problem with the above-described approach to controlling devices is that the controller is typically specific to a particular device or a set of particular devices and must be pre-programmed (either by the manufacturer or the user) with all the capabilities of the controlled device that the user wishes to control. Another problem with the above-described approaches to controlling devices is that the method of control is unreliable. For example, one-way remote controllers have no way of determining whether a user instruction has been properly received by the device. This is particularly the case with IrDA remote controllers which require line of sight to the device. Furthermore, with two-way communication between remote controller and device, reliability can be even more of a problem. For example, where the remote controller maintains state relating to the operational status of the device, the unreliability of communicating commands to the device and the unreliability of receiving status from the device means that the state maintained in the remote controller may not be synchronised with the actual state of the device.

One problem with the above described approach to receiving status information at a controller device from a controlled device is that the controlled device must have knowledge of the capabilities of the controller device—for example, the display capabilities of the controller device.

SUMMARY OF CERTAIN INVENTIVE ASPECTS OF THE INVENTION

According to a first aspect of the present invention, there is provided a method of providing a remote data processing device with control data, the control data enabling a user to control the operation of a consumer electronics device, both the remote data processing device and the consumer electronics device being capable of communication using a hypermedia data communications protocol, the method comprising the following steps:

-   -   a) the consumer electronics device generating a hypermedia data         message, the hypermedia data message comprising data         representing one or more menu options, the menu options         corresponding to one or more actions capable of being performed         by the consumer electronics device in response to receiving a         control message corresponding to one or more of the menu         options;     -   b) the consumer electronics device sending the hypermedia data         message to the remote data processing device using the         hypermedia data communications protocol.

According to a second aspect of the present invention, there is provided a method of providing a remote data processing device with data representing the operational state of a consumer electronics device, both the remote data processing device and the consumer electronics device being capable of communication using a hypermedia data communications protocol, the method comprising the following steps:

-   -   a) the consumer electronics device generating a hypermedia data         message in dependence on the operational state of the consumer         electronics device; and     -   b) sending the hypermedia data message to the remote data         processing device using the hypermedia data communications         protocol.

According to a third aspect of the present invention, there is provided a method of controlling a consumer electronics device using a remote data processing device, both the remote data processing device and the consumer electronics device being capable of communication using a hypermedia data communications protocol, the method comprising the following steps:

-   -   a) the consumer electronics device generating a hypermedia data         message, the hypermedia data message comprising data         representing one or more menu options, the menu options         corresponding to one or more actions capable of being performed         by the consumer electronics device in response to receiving a         control message corresponding to one or more of the menu         options;     -   b) the consumer electronics device sending the hypermedia data         message to the remote data processing device using the         hypermedia data communications protocol;     -   c) the remote data processing device presenting the one or more         menu options to a user via a man-machine interface;     -   d) the user selecting one or more of the menu options using the         man-machine interface;     -   e) the remote data processing device generating and sending to         the consumer electronics device a control message in response to         the user selection;     -   f) the consumer electronics device performing the corresponding         action or actions in response to the received control message.

According to a fourth aspect of the present invention, there is provided a consumer electronics device adapted to provide a remote data processing device with control data, the control data enabling a user to control the operation of the consumer electronics device, the consumer electronics device being capable of communication using a hypermedia data communications protocol, the consumer electronics device comprising the following:

-   -   a) means for generating a hypermedia data message, the         hypermedia data message comprising data representing one or more         menu options, the menu options corresponding to one or more         actions capable of being performed by the consumer electronics         device in response to receiving a control message corresponding         to one or more of the menu options;     -   b) means for sending the hypermedia data message to the remote         data processing device using the hypermedia data communications         protocol.

According to a fifth aspect of the present invention, there is provided a consumer electronics device adapted to provide a remote data processing device with data representing its operational state, the consumer electronics device being capable of communication using a hypermedia data communications protocol, the consumer electronics device comprising the following:

-   -   a) means for generating a hypermedia data message in dependence         on its operational state; and     -   b) means for sending the hypermedia data message to the remote         data processing device using the hypermedia data communications         protocol.

According to a sixth aspect of the present invention, there is provided a consumer electronics device adapted to be controlled using a remote data processing device, the consumer electronics device being capable of communication using a hypermedia data communications protocol, the consumer electronics device comprising the following:

-   -   a) means for generating a hypermedia data message, the         hypermedia data message comprising data representing one or more         menu options, the menu options corresponding to one or more         actions capable of being performed by the consumer electronics         device in response to receiving a control message corresponding         to one or more of the menu options;     -   b) means for sending a hypermedia data message to the remote         data processing device using the hypermedia data communications         protocol;     -   c) means for receiving a control message from the remote data         processing device using the hypermedia data communications         protocol;     -   d) means for performing one or more actions in response to a         received control message.

According to a seventh aspect of the present invention, there is provided a control unit for a consumer electronics device, the control unit being adapted to provide a remote data processing device with control data, the control data enabling a user to control the operation of the consumer electronics device, the control unit comprising:

-   -   a) means for determining the operational state of the consumer         electronics device;     -   b) means for generating a hypermedia data message, the         hypermedia data message comprising data representing one or more         menu options, the menu options corresponding to one or more         actions capable of being performed by the consumer electronics         device;     -   c) means for sending the hypermedia data message to the remote         data processing device using a hypermedia data communications         protocol.

According to an eighth aspect of the present invention, there is provided a control unit for a consumer electronics device, the control unit being adapted to provide a remote data processing device with data representing its operational state, the control unit comprising the following:

-   -   a) means for determining the operational state of the consumer         electronics device;     -   b) means for generating a hypermedia data message in dependence         on its operational state; and     -   c) means for sending the hypermedia data message to the remote         data processing device using a hypermedia data communications         protocol.

According to a ninth aspect of the present invention, there is provided a control unit for a consumer electronics device, the control unit comprising the following:

-   -   a) means for generating a hypermedia data message, the         hypermedia data message comprising data representing one or more         menu options, the menu options corresponding to one or more         actions capable of being performed by the consumer electronics         device in response to receiving one or more control messages         corresponding to one or more of the menu options;     -   b) means for sending the hypermedia data message to a remote         data processing device using a hypermedia data communications         protocol;     -   c) means for receiving a control message from a remote data         processing device;     -   d) means for controlling the consumer electronics device to         perform one or more actions in response to a received control         message.

According to a tenth aspect of the present invention, there is provided an integrated circuit for a consumer electronics device comprising:

-   -   a) communications means adapted to communicate using a proximity         bearer;     -   b) microprocessor control unit means;     -   c) interface means for electronic communication with a         controller of the consumer electronics device.

According to an eleventh aspect of the present invention, there is provided a data processing device comprising proximity bearer communications means and hypermedia transport protocol message generation means, wherein the device is adapted to communicate with remote data processing devices using the hypermedia transport protocol over the proximity bearer.

According to a twelfth aspect of the present invention, there is provided a method of controlling a consumer electronics device, the consumer electronics device being capable of communicating using a hypermedia data communications protocol over a proximity bearer, the method comprising the following steps:

-   -   a) the consumer electronics device receiving a hypermedia         request message;     -   b) the consumer electronics device determining one or more         actions to be performed by the consumer electronics device, the         determining being performed in dependence on the hypermedia         request message;     -   c) the consumer electronics device performing the one or more         actions.

According to a thirteenth aspect of the present invention, there is provided a method of compiling a computer program into a machine code program, the computer program being written in a programming language, the programming language having native functions or methods for causing the interrogation of electronic input/output interfaces and having native functions or methods for causing the generation of menu option descriptions for inclusion in hypermedia data messages.

According to a fourteenth aspect of the present invention, there is provided a method of controlling a controlled data processing device using a controller data processing device, the controlled device and controller device both being capable of communication using a hypermedia data communications protocol, the method comprising the following steps:

-   -   a) the controlled device sending a hypermedia data message to         the controller device using the hypermedia protocol, the         hypermedia data message comprising one or more hyperlinks;     -   b) the controller device presenting the hypermedia data message         to a user of the controller device using a man-machine interface         of the controller device;     -   c) the user selecting one or more of the one or more hyperlinks         using the man-machine interface;     -   d) in response to the user selection, the controller device         sending a hypermedia request message to the controlled device         using the hypermedia protocol; and     -   e) the controlled device performing an action in response to the         hypermedia request message received.

According to a fifteenth aspect of the present invention, there is provided a method of controlling a controlled data processing device using a controller data processing device, the controlled device being capable of communication using a data communications protocol, the controller device being capable of communication using a hypermedia data communications protocol, the method comprising the following steps:

-   -   a) the controlled device sending a data message to a mediating         data processing device using the data communications protocol,         the mediating device being capable of communication using both         the data communications protocol and the hypermedia data         communications protocol,     -   b) in response to the data message received, the mediating         device sending a hypermedia data message to the controller         device using the hypermedia data communications protocol, the         hypermedia message comprising one or more hyperlinks;     -   c) the controller device presenting the hypermedia data message         to a user of the controller device using a man-machine interface         of the controller device;     -   d) the user selecting one or more of the one or more hyperlinks         using the man-machine interface;     -   e) in response to the user selection, the controller device         sending a hypermedia request message to the mediating device         using the hypermedia data communications protocol;     -   f) in response to the hypermedia request message received, the         mediating device sending a control data message to the         controlled device using the data communications protocol; and     -   g) the controlled device performing an action in response to the         control data message received.

According to a sixteenth aspect of the present invention, there is provided a method of receiving status information from a consumer electronics device at a remote data processing device, the consumer electronics device and remote device both being capable of communication using a hypermedia data communications protocol over a proximity bearer, the method comprising the following steps:

-   -   a) the consumer electronics device sending a hypermedia data         message to the remote device using the hypermedia protocol over         the proximity bearer, the hypermedia data message comprising         data representing the state of the consumer electronics device;     -   b) the remote device receiving the hypermedia data message using         the hypermedia data communications protocol over the proximity         bearer; and     -   c) the remote device presenting the hypermedia data message to a         user of the remote device using a man-machine interface of the         controller device.

According to a seventeenth aspect of the present invention, there is provided a method of receiving status information from a consumer electronic device at a remote data processing device, the remote data processing device being capable of communication using a hypermedia data communications protocol over a proximity bearer, the consumer electronics device being capable of communication using a data communications protocol, the method comprising the following steps:

-   -   a) the consumer electronics device sending a data message to a         mediating data processing device using the data communications         protocol, the mediating data processing device being capable of         communication using both the data communications protocol and         the hypermedia data communications protocol, data message         comprising data representing the state of the consumer         electronics device, the data message comprising data         representing the state of the consumer electronics device;     -   b) in response to the data message received, the mediating         device sending a hypermedia data message to the remote device         using the hypermedia data communication protocol over the         proximity bearer, the hypermedia data message comprising data         representing the state of the consumer electronics device;     -   c) the remote device receiving the hypermedia data message using         the hypermedia data communications protocol over the proximity         bearer; and     -   d) the remote device presenting the hypermedia data message to a         user of the remote device using a man-machine interface of the         controller device.

Further aspects of the present invention are set out in the appended claims.

One advantage of the present invention is that it facilitates control and/or observation of controlled devices without the controller device needing to have any prior knowledge or expectations of the capabilities of the controlled device, save that it is capable of hypermedia communication with the controller device. Thus, the controller device need not be pre-programmed with device-specific information either by a user or manufacturer as has been the case according to the prior art described above.

Another advantage of the present invention is that the control and/or observation communication between a controller device and a controlled is reliable and any controlled device operational state maintained by the controller device will be reliably synchronised with the actual operational state of the controlled device.

Another advantage of the present invention is that the controller device need not store data enabling the control and/or observation of the controlled device permanently or for as long as required by prior art systems described above.

Another advantage of the present invention is that the controller device need not store data enabling the control and/or observation of the controlled device in a manner which are currently not valid due to the operational state of the controlled device as required by prior art systems described above. For example, the controller device will not store data enabling the control of a controlled CD player to stop playing a CD when the CD player is not currently playing a CD.

There now follows, by way of example only, a detailed description of the present invention in which:

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram showing the flow of control data in a remote control arrangement according to the prior art;

FIG. 2 is a schematic diagram showing the flow of control data in a remote control arrangement according to an embodiment of the present invention;

FIGS. 3 a) and b) are schematic diagrams showing the system architecture of a remote controller and controlled device according to embodiments of the present invention;

FIGS. 4 a) and b) are schematic diagrams showing interactions between a remote controller and a controlled device according to embodiments of the present invention;

FIGS. 5, 6 and 7 are flow diagrams showing the initial and subsequent detection procedures for establishing communications links between controlled devices and controller devices according to embodiments of the present invention;

FIGS. 8 a) to l) show typical user interfaces presented to a user of a remote controller according to the present invention; and

FIG. 9 is a circuit diagram of an control unit for a controlled device according to an embodiment the present invention.

DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS OF THE INVENTION

By way of a brief overview, the present invention (sometimes referred to as the Hypertext or Hypermedia Control System or HCS) provides a system for control and/or observation of a controlled device, such as a consumer electronics device, by a controller, such as a WAP-enabled mobile phone, in which the controller need not have any prior knowledge or expectations of the capabilities, or even the presence of the controlled device. The controller is essentially stateless and has not been programmed either by the manufacturer or the user of the controlled device. Similarly, the controlled device has no pre-configured knowledge or expectations of the controller. However, the controller and the controlled device are both able to communicate using a hypermedia protocol, such as the Hypertext Transfer Protocol (HTTP) or the Wireless Transfer Protocol (WTP). Typically, but not necessarily, the controller and the controlled device will communicate over a proximity bearer (PB) such as Bluetooth™ (BT).

FIG. 2 is a schematic diagram showing the flow of control data in a remote control arrangement according to an embodiment of the present invention in which it is shown that data may flow from the controlled side to the controller side as well as from the controller side to the controlled side. Data flowing from the control side to the controller side may include data representing the operational status of the controlled device and/or data for programming the controller device to enable it to send control data to the controlled device for controlling the controlled device.

FIG. 3 a) is a schematic diagram showing the system architecture of a remote controller and controlled device according to an embodiment of the present invention. Domain 1 is the hypermedia control system domain incorporating a hypermedia controller domain 10 and a device domain 20. The hypermedia controller domain may correspond to a data processing device such as a mobile phone or a personal digital assistant (PDA), or any other data processing device whether fixed or mobile. The hypermedia control domain 10 comprises a controller man-machine interface (MMI) 12 such as a screen and a keypad and a hypermedia protocol stack, proximity bearer stack and proximity bearer equipment 14. Typically, the hypermedia control domain device will operate a hypermedia application such as a Web or WAP browser application. They hypermedia control domain device may receive hypermedia data messages and send hypermedia request messages or other request messages using protocol and bearer stack 14. The device domain 20 comprises a proximity link controller (PLC) domain 22 and a device controller domain 24. The PLC domain 22 comprises a hypermedia protocol stack, proximity bearer stack and proximity bearer equipment 26 corresponding to the controller-side stack and bearer arrangement 14. The device domain is able to receive hypertext request messages or other control messages using stack and bearer arrangement 26, in particular it is able to receive such messages from the hypermedia control domain device. Messages received are filtered using hypermedia control request filter (HCRF) 28 which filters hypermedia request messages to device hypertext control interpreter (DHCI) 30. DHCI 30 is a computer program or microcoded sub-system that interprets hypermedia requests using hypermedia control virtual machine (HCVM) 32 itself a computer program or microcoded sub-system. The combination of DHCI 30 and HCVM 32 is able to interpret hypertext request messages received as control messages for controlling the controlled device. This is achieved by passing control messages to device controller domain 24 using device bus protocol 34. Preferably, the PLC is arranged to communicate using two or more hypermedia protocols such as WAP, Web, iMode etc. so that control is possible using controller devices capable of communicating using any one of the hypermedia protocols.

Thus, a hypermedia control device is able to control a remote device, such as a consumer electronics device, using a hypertext data communications protocol over a proximity bearer. In other embodiments of the present invention, the controller device is able to control the control device using the proximity bearer alone. In other embodiments of the present invention, the controller device and the controlled device communicate using a link level communications bearer other than a proximity bearer. For example, they may communicate using physical cabling or another data communications network such as an Internet protocol network or a public switched telephone network or a cellular network.

The combination of HCVM 32 and DHCI 30 are also arranged to be capable of interrogating the device controller 24 to receive data representing the operational status of the controlled device. Using this data, HCVM 32 and DHCI 30 are able to generate hypermedia data messages comprising data representing the operational state of the control device and sending these data messages to the controller device using the stack and bearer arrangement 26. Upon receipt of the hypermedia data messages using stack and bearer arrangement 14, the controller device is able to display the hypermedia data message to a user of the controller device using the MMI 12. For example, the controller device may display a Web page or a WAP card or deck to the user via a browser application. Thus, the control device is able to present data representing the operational state of the device to a user of a remote controller device in the form of a hypermedia data message.

Furthermore, the hypermedia data messages generated by the controlled device may include hyperlinks or other menu options which, when presented to a user of the controller device, may be selected or activated by the user thereby causing the controller device to generate a hypertext request message or other control message for sending to the control device and thereby controlling the controlled device as has been described above. These hyperlinks or menu options may represent the currently available actions that may be performed by the control device. For example, if the control device is a CD player and the CD player is currently playing a CD, then a hyperlink or menu option for stopping the CD player may be included in the hypermedia data message, but not a hyperlink or menu option for starting the CD player to play a CD.

Thus, it can be seen that the control device arrangement as shown in FIG. 3 a) is able to provide a controller device with both its operational status and data enabling the controller device to control the controlled device.

FIG. 3 b) is a schematic diagram showing the system architecture of a remote controller and control device according to an embodiment of the present invention, as described in general with reference to FIG. 3 a) above. FIG. 3 b) shows a particular embodiment in which the stack and bearer arrangements 14 and 26 are WAP over BT stack and bearer arrangements and the device bus protocol 34 and device controller 24 use the 12C protocol.

FIGS. 4 a) and 4 b) are schematic diagrams showing interactions between the remote controller and the control device according to embodiments of the present invention. FIG. 4 a) shows one embodiment of the present invention in which the PLC merely formats and relays hypermedia request messages received from the controller device for passing to the controller of the controlled device for obtaining status or controlling the control device. Similarly, the PLC merely formats and relays status information received from the control device as hypertext data message for sending to the controller device. FIG. 4 b) shows an alternative embodiment in which the PLC interprets hypermedia request messages received from the controller device using a compiled control program code specific to the controlled device and generates a control message for controlling or interrogating the controlled device. Similarly, operational status data from the controlled device is interpreted and used to generate a hypertext data message for sending to the controller device. The compiled hypertext control language code used in the embodiment described with reference to FIG. 4 b) is executed by the HCVM and controls the interaction between the controller device and the controlled device. The compiled code is compiled from a source program written in a programming language which has functions or methods for interrogating a controlled device via a controller interface to obtain the operational status of the controlled device and functions and methods for issuing commands to the controlled device via a controller interface. The language also has functions or methods for causing the generation of hypertext data messages comprising data representing the operational state of the controlled device and/or comprising data enabling the controller device to control the controlled device as described above.

The compiled code is executed by the HCVM, but the HCVM does not itself have the ability to generate hypermedia data messages. This is left to the DHCI which functions as a wrapper to the HCVM and generates hypermedia data messages in response to instructions received from the HCVM. This is the case in both embodiments described with reference to FIGS. 4 a) and 4 b).

FIGS. 5, 6 and 7 are flow diagrams showing the initial and subsequent detection procedures operated by control devices to detect controller devices according to embodiments of the present invention. FIG. 5 shows a flow diagram for initial detection of a controllable device by a controller device. The controller device is, for example, a WAP enabled mobile phone. Initially, the phone is in idle mode at step 40. Upon selection of an option to “find local devices” displayed on the phone MMI at step 42, the phone performs detection of local PLCs at step 44. At step 46, if the phone has not detected a local PLC, the process returns to step 40. However, if the phone has detected a local PLC, the process continues to step 48 where the phone displays a selection menu on the MMI showing the one or more PLCs detected in the locality. During detection at step 44, the MMI of the phone will look like FIG. 8 a). At steps 48 and 50, the MMI of the phone will look like FIG. 8 b). For controller devices and controlled devices using BT as a proximity bearer, standard BT detection procedures are used to perform the steps described above.

FIG. 6 is a flow diagram showing the process followed when the PLC of a controlled device has not previously been accessed by the controller device. Continuing from step 50, the user selects a PLC using the MMI of the phone at step 52. This generates a hypermedia request to access a “home page” of the PLC at step 54. At step 56 the PLC response to the request is pending and at step 58 the PLC, knowing that the controller device has not been registered in an access register, provides a response to the request requiring input of a personal identification number (PIN) from the user. The PLC is aware that the controller device has not previously accessed the PLC, because it maintains a controller device or user identifier, such as a BT identifier or MSISDN in an access register. At step 60, the user enters the required PIN using the MMI of the controller device and a message is passed to the controlled device providing this PIN. At step 62, the PLC responds with the home page of the controlled device. At step 64, the PLC enters a proximity link active state.

FIG. 7 is a flow diagram showing the corresponding process followed where the PLC recognises the controller device requesting access using a BT identifier or MSISDN identifier obtained from the controller device. The flow diagram is the same as for FIG. 6 except that steps 58 and 60 are omitted.

Once the PLC of a controlled device has sent a hypermedia data message constituting a “home page” of the controlled device to the controller device, the user of the controller device may navigate through menu options presented on the MMI in a manner similar to navigating through a Internet Web site having first accessed the home page of the Web site. However, unlike navigating through a Web site, the actions of the user of the controller device may result in the control of the controlled device. Furthermore, the current status of the controlled device may be presented to the user of the controller device and menu options corresponding to currently available actions that may be performed by the controlled device are dynamically presented to the user of the controller device as the user navigates/controls the controlled device. Thus the controller device is being dynamically programmed to control the controlled device by the controlled device itself.

FIGS. 8 a) to 8 l) show the MMI of a controller device, i.e. the screen and keypad of a Web or WAP-enabled mobile phone as a user navigates through menu options presented to him. After selecting an option to search for local devices using, for example, standard BT detection procedures, the mobile phone displays a message as shown in FIG. 8 a), indicating that the phone is searching for a PLC in the neighbourhood. FIG. 8 b) shows a selection menu for selecting one of three controllable devices equipped with PLCs in the neighbourhood. The user selects a Sony™ CDP-123 CD player. FIG. 8 c) shows a home page of the Sony™ player giving the user options to play a CD, select tracks, receive disk information or open the CD tray. No option to stop or pause the playing of the CD presented because the CD is not currently playing. The menu options are presented are hyperlinks which when selected by the user generate hypermedia request messages for sending to the controlled device.

In FIGS. 8 a) and 8 b) the screen displayed by the phone is not a displayed Web or WAP page or card, although if the phone were equipped with its own PLC functioning as a proxy for remote PLCs then a Web or WAP page or card may be displayed by the local PLC. However, FIG. 8 c) shows a Web or WAP page or card received from the PLC of the controlled device and presents it to the user of the phone by a browser application. FIG. 8 d) shows another page or card displayed by the phone. The page or card displays status information—such as the fact that track 12 is playing—and menu options corresponding to actions of the control device that may be instructed by the user. FIG. 8 e) shows a page or card displayed by the phone in which the user may select complex options such as the playing of a selected number of tracks of the CD. This may be achieved by using forms or applets for capturing complex user instructions before generating a hypermedia request message for sending to the controlled device.

FIGS. 8 f), 8 g), 8 h), 8 k) and 8 l) relate to security options which may be implemented in the present invention. If the phone has not accessed the PLC of the controlled device before, the PLC may send a PIN request page or card for presentation to the user such as shown in FIG. 8 g). The user enters a master code provided in documentation accompanying the controlled device and upon submission is presented with a page or card such as shown in FIG. 8 h) showing a user level PIN access code. If however the master code entered is invalid, the PLC sends a page or card such as shown in FIG. 8 f). After authentication, the PLC sends normal operational pages or cards to the phone such as shown in FIGS. 8 i) and 8 j) and such as described above with reference to FIGS. 8 c) and 8 d). Upon subsequent access by the mobile phone to the PLC of the same controllable device, an initial authentication screen such as shown in FIG. 8 g) is not presented. Instead, a subsequent authentication screen such as shown in FIG. 8 k) is presented in which the user is asked to supply a user level PIN. Upon successful entry of the PIN, the PLC proceeds to display normal operational cards or pages such as shown in FIGS. 8 i) and 8 j). FIG. 8 l) shows a screen for controlling user level PINs which may be accessed on supply of a master level PIN.

FIG. 9 shows a circuit diagram for a control unit, which may be implemented as an integrated circuit, for use in a controlled device such as a consumer electronics device. The control unit comprises a radio frequency front end 70 connected to a proximity bearer protocol core 80 such as a BT core. The control unit also comprises a microprocessor unit 82, random access memory 84 and read only memory 86. The hypermedia protocol stack and proximity bearer stack may be implemented in the proximity core 80. The HCRF, HCVM and DHCI may be stored in ROM 86 and/or RAM 84 and executed by microprocessor 82. Microprocessor 82 may interrogate and control the controller of the consumer electronics device via various interface means 88. These interface means include a universal serial bus (USB), an Inter Integrated Circuit Bus (I2CB), a general parallel input output bus (GPIO) and a Universal Asynchronous Receiver Transmitter (UART).

The present invention is described in further detail in a technical report document appended hereto as Appendix A.

It is to be understood that the controller devices of the present invention are not limited to mobile phones or PDAs but may be any data processing device whether fixed or mobile which is capable of hypermedia communication whether over a radio interface or over a wired data network. It is also to be understood that the controlled devices according to the present invention may be any data processing devices capable of hypermedia communication whether over a radio interface or over a wired data network. Typically, but not necessarily, the controlled device will be a consumer electronics device such as a CD player, refrigerator, etc. Throughout this document, the term hypermedia and hypertext have been used to refer to any data representation capable of comprising data object referencing other data objects, such as text, audio or visual data etc. It is also to be understood that, while proximity bearers such as BT and IrDA have been described for providing remote communications between a controller device and a controlled device, the present invention may be implemented using a data communication bearer. For example, communication may take place over local area networks, IP networks, public switched telephone network, or cellular mobile networks such as GSM.

Appendix A 

1. A method of providing a remote data processing device with control data that enables a user to control the operation of a consumer electronics device, the method comprising: generating a hypermedia data message, the hypermedia data message comprising data representing one or more menu options, the menu options corresponding to one or more actions configured to be performed by the consumer electronics device in response to receiving a control message corresponding to one or more of the menu options; and sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol, wherein both the remote data processing device and the consumer electronics device are configured to communicate using the hypermedia data communications protocol.
 2. The method according to claim 1, further comprising: presenting the one or more menu options to the user using a man-machine interface; and generating and sending to the consumer electronics device a hypermedia request message corresponding to selected menu options in response to a user instruction.
 3. A method of providing a remote data processing device with data representing the operational state of a consumer electronics device, the method comprising: generating a hypermedia data message in dependence on the operational state of the consumer electronics device; and sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol, wherein both the remote data processing device and the consumer electronics device are configured to perform communication using the hypermedia data communications protocol.
 4. A method of controlling a consumer electronics device using a remote data processing device, the method comprising: generating a hypermedia data message, the hypermedia data message comprising data representing one or more menu options, the menu options corresponding to one or more actions configured to be performed by the consumer electronics device in response to receiving a control message corresponding to one or more of the menu options; sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol; presenting the one or more menu options to a user via a man-machine interface; allowing the user to select one or more of the menu options using the man-machine interface; generating and sending to the consumer electronics device a control message in response to the user selection; and performing the corresponding action or actions in response to the received control message, wherein both the remote data processing device and the consumer electronics device are configured to communicate using the hypermedia data communications protocol.
 5. The method according to claim 3, further comprising communicating the remote data processing device and the consumer electronics device using a proximity bearer.
 6. The method according to claim 1, wherein the one or more menu options correspond to one or more actions currently performable by the consumer electronics device.
 7. The method according to claim 3, further comprising generating the hypermedia data message in two or more hypermedia mark-up languages.
 8. A computer readable medium for storing one or more computer programs for performing a method of providing a remote data processing device with data representing the operational state of a consumer electronics device, the method comprising: generating a hypermedia data message in dependence on the operational state of the consumer electronics device; and sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol, wherein both the remote data processing device and the consumer electronics device are configured to communicate using the hypermedia data communications protocol.
 9. An apparatus for providing a remote data processing device with data representing the operational state of a consumer electronics device, the apparatus comprising: means for generating a hypermedia data message in dependence on the operational state of the consumer electronics device; and means for sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol, wherein both the remote data processing device and the consumer electronics device are configured to communicate using the hypermedia data communications protocol.
 10. A consumer electronics device adapted to provide a remote data processing device with control data that enables a user to control the operation of the consumer electronics device, the consumer electronics device comprising: means for generating a hypermedia data message, the hypermedia data message comprising data representing one or more menu options, the menu options corresponding to one or more actions configured to be performed by the consumer electronics device in response to receiving a control message corresponding to one or more of the menu options; and means for sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol, wherein the consumer electronics device is configured to communicate using the hypermedia data communications protocol.
 11. A consumer electronics device adapted to provide a remote data processing device with data representing the operational state of the consumer electronics device, the consumer electronics device comprising: means for generating a hypermedia data message in dependence on the operational state of the consumer electronics device; and means for sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol, wherein the consumer electronics device are configured to communicate using the hypermedia data communications protocol.
 12. A consumer electronics device adapted to be controlled using a remote data processing device, the consumer electronics device comprising: means for generating a hypermedia data message, the hypermedia data message comprising data representing one or more menu options, the menu options corresponding to one or more actions configured to be performed by the consumer electronics device in response to receiving a control message corresponding to one or more of the menu options; means for sending a hypermedia data message to the remote data processing device using a hypermedia data communications protocol; means for receiving a control message from the remote data processing device using the hypermedia data communications protocol; and means for performing one or more actions in response to a received control message, wherein the consumer electronics device is configured to communicate using the hypermedia data communications protocol.
 13. The consumer electronics device according to claim 11, wherein the consumer electronics device is adapted to send hypermedia data messages and/or receive control messages using a proximity bearer.
 14. The consumer electronics device according to claim 10, wherein the one or more menu options correspond to one or more actions currently performable by the consumer electronics device.
 15. The consumer electronics device according to claim 11, wherein the consumer electronic device is configured to generate the hypermedia data message in two or more hypermedia mark-up languages.
 16. A control unit for a consumer electronics device, the control unit being adapted to provide a remote data processing device with control data that enables a user to control the operation of the consumer electronics device, the control unit comprising: means for determining the operational state of the consumer electronics device; means for generating a hypermedia data message, the hypermedia data message comprising data representing one or more menu options, the menu options corresponding to one or more actions configured to be performed by the consumer electronics device; and means for sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol.
 17. A control unit for a consumer electronics device, the control unit being adapted to provide a remote data processing device with data representing the operational state of the consumer electronics device, the control unit comprising: means for determining the operational state of the consumer electronics device; means for generating a hypermedia data message in dependence on the operational state of the consumer electronics device; and means for sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol.
 18. A control unit for a consumer electronics device, the control unit comprising: means for generating a hypermedia data message, the hypermedia data message comprising data representing one or more menu options, the menu options corresponding to one or more actions configured to be performed by the consumer electronics device in response to receiving one or more control messages corresponding to one or more of the menu options; means for sending the hypermedia data message to a remote data processing device using a hypermedia data communications protocol; means for receiving a control message from a remote data processing device; means for controlling the consumer electronics device to perform one or more actions in response to a received control message.
 19. The control unit according to claim 17, wherein the control unit is adapted to communicate using a proximity bearer.
 20. The control unit according to claims 16, wherein the one or more menu options correspond to one or more actions currently performable by the consumer electronics device.
 21. The control unit according to claim 17, wherein the control unit is adapted to generate the hypermedia data message in two or more hypermedia mark-up languages.
 22. An integrated circuit for a consumer electronics device, comprising: a communication unit adapted to communicate using a proximity bearer; and an interface unit configured to provide an interface between the communication unit and a controller of the consumer electronics device.
 23. The integrated circuit according to claim 22, further comprising a proximity link controller adapted to control communications links of the proximity bearer to remote communications devices.
 24. The integrated circuit according to claim 22, further comprising a virtual machine unit configured to cause the generation of hypermedia data messages and/or consumer electronics device control messages for controlling the consumer electronics device.
 25. The integrated circuit according to claim 24, further comprising a hypermedia interpreter for configuring and controlling data input and output of the virtual machine unit.
 26. The integrated circuit according to claim 22, further comprising a filter configured to perform filtering control messages received via the communication unit.
 27. The integrated circuit according to claim 22, further comprising a hypermedia protocol generation unit configured to generate a hypermedia protocol, wherein the communication unit is further adapted to communicate using the hypermedia protocol.
 28. The integrated circuit according to claim 22, wherein the interface unit is adapted to communicate using a home control protocol interface.
 29. A data processing device, comprising: a proximity bearer communications unit configured to communicate using a proximity bearer; and a hypermedia transport protocol generation unit configured to generate a hypermedia transport protocol, wherein the device is adapted to communicate with remote data processing devices using the hypermedia transport protocol over the proximity bearer.
 30. The device according to claim 29, further comprising a proximity link controller adapted to control communications links of the proximity bearer to remote communications devices.
 31. The device according to claim 30, wherein the proximity link controller is adapted to function as a hypermedia proxy for one or more remote data processing devices.
 32. A method of controlling a consumer electronics device, the method comprising: receiving a hypermedia request message; determining one or more actions to be performed by the consumer electronics device, the determining being performed in dependence on the hypermedia request message; and performing the one or more actions, wherein the consumer electronics device is configured to communicate using a hypermedia data communications protocol over a proximity bearer.
 33. The method according to claim 32, wherein the hypermedia request message is generated by a remote data processing device, the remote data processing device being configured to communicate using a hypermedia data communications protocol over a proximity bearer.
 34. The method according to claim 33, wherein the hypermedia request message is generated by the remote data processing device in response to a user selection of a hyperlink in a hypermedia data message, the hypermedia data message being provided to the remote data processing device by the consumer electronics device.
 35. A computer readable medium storing one or more computer programs for performing a method of controlling a consumer electronics device, the method comprising: receiving a hypermedia request message; determining one or more actions to be performed by the consumer electronics device, the determining being performed in dependence on the hypermedia request message; and performing the one or more actions, wherein the consumer electronics device is configured to communicate using a hypermedia data communications protocol over a proximity bearer.
 36. An apparatus for controlling a consumer electronics device, the apparatus comprising: means for receiving a hypermedia request message; means for determining one or more actions to be performed by the consumer electronics device, the determining being performed in dependence on the hypermedia request message; and means for performing the one or more actions, wherein the consumer electronics device is configured to communicate using a hypermedia data communications protocol over a proximity bearer.
 37. A method of generating a control program for performing a method of providing a remote data processing device with data representing the operational state of a consumer electronics device, the providing method comprising: generating a hypermedia data message in dependence on the operational state of the consumer electronics device; and sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol, wherein both the remote data processing device and the consumer electronics device are configured to communicate using the hypermedia data communications protocol.
 38. A method of generating a machine code program, the method comprising: compiling a computer program written in a programming language, the programming language having native functions or methods for causing the interrogation of electronic input/output interfaces and having native functions or methods for causing the generation of menu option descriptions for inclusion in hypermedia data messages.
 39. The method according to claim 38, wherein the machine code program is for use in a consumer electronics device or a control unit.
 40. The method according to claim 3 8, wherein the machine code program is for use in an integrated circuit.
 41. A method of configuring a consumer electronics device to perform a method of providing a remote data processing device with data representing the operational state of a consumer electronics device, the configuring method comprising: compiling a computer program written in a programming language, the programming language having native functions or methods for causing the interrogation of electronic input/output interfaces and having native functions or methods for causing the generation of menu option descriptions for inclusion in hypermedia data messages, the compiled program being used to configure the consumer electronics device, wherein the providing method comprises: generating a hypermedia data message in dependence on the operational state of the consumer electronics device; and sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol, wherein both the remote data processing device and the consumer electronics device are configured to perform communication using the hypermedia data communications protocol.
 42. A method of configuring a control unit for a consumer electronics device to perform a method of providing a remote data processing device with data representing the operational state of a consumer electronics device, the configuring method comprising: compiling a computer program written in a programming language, the programming language having native functions or methods for causing the interrogation of electronic input/output interfaces and having native functions or methods for causing the generation of menu option descriptions for inclusion in hypermedia data messages, the compiled program being used to configure the control unit, wherein the providing method comprises: generating a hypermedia data message in dependence on the operational state of the consumer electronics device; and sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol, wherein both the remote data processing device and the consumer electronics device are configured to perform communication using the hypermedia data communications protocol.
 43. A computer readable medium storing a compiler program for performing a method of providing a remote data processing device with data representing the operational state of a consumer electronics device, the providing method comprising: generating a hypermedia data message in dependence on the operational state of the consumer electronics device; and sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol, wherein both the remote data processing device and the consumer electronics device are configured to communicate using the hypermedia data communications protocol.
 44. A compiler system adapted to perform a method of providing a remote data processing device with data representing the operational state of a consumer electronics device, the providing method comprising: generating a hypermedia data message in dependence on the operational state of the consumer electronics device; and sending the hypermedia data message to the remote data processing device using a hypermedia data communications protocol, wherein both the remote data processing device and the consumer electronics device are configured to communicate using the hypermedia data communications protocol.
 45. A method of compiling a computer program into a machine code program, the computer program being written in a programming language, the programming language having native functions or methods for causing the interrogation of electronic input/output interfaces and having native functions or methods for causing the generation of menu option descriptions for inclusion in hypermedia data messages.
 46. The method according to claim 45, wherein the programming language has native functions or methods for causing the issuing of commands to electronic input/output interfaces.
 47. The method according to claim 45, wherein the machine code is used to configure a consumer electronics device or a control unit of a consumer electronics device.
 48. A computer readable medium storing a compiler program for performing a method of compiling a computer program into a machine code program, the computer program being written in a programming language, the programming language having native functions or methods for causing the interrogation of electronic input/output interfaces and having native functions or methods for causing the generation of menu option descriptions for inclusion in hypermedia data messages.
 49. A compiler system adapted to perform a method of compiling a computer program into a machine code program, the computer program being written in a programming language, the programming language having native functions or methods for causing the interrogation of electronic input/output interfaces and having native functions or methods for causing the generation of menu option descriptions for inclusion in hypermedia data messages.
 50. A method of controlling a controlled data processing device using a controller data processing device, the method comprising: sending a hypermedia data message to the controller device using a hypermedia data communications protocol, the hypermedia data message comprising one or more hyperlinks; presenting the hypermedia data message to a user of the controller device using a man-machine interface of the controller device; allowing the user to select one or more of the one or more hyperlinks using the man-machine interface; in response to the user selection, sending a hypermedia request message to the controlled device using the hypermedia data communications protocol; and performing an action in response to the hypermedia request message received, wherein both the controlled device and the controller device are configured to communicate using the hypermedia data communications protocol.
 51. A method of controlling a controlled data processing device using a controller data processing device, the method comprising: sending a data message to a mediating data processing device using a data communications protocol, the mediating device configured to communicate using both the data communications protocol and a hypermedia data communications protocol; in response to the data message received, sending a hypermedia data message to the controller device using the hypermedia data communications protocol, the hypermedia data message comprising one or more hyperlinks; presenting the hypermedia data message to a user of the controller device using a man-machine interface of the controller device; allowing the user to select one or more of the one or more hyperlinks using the man-machine interface; in response to the user selection, sending a hypermedia request message to the mediating device using the hypermedia data communications protocol; in response to the hypermedia request message received, sending a control data message to the controlled device using the data communications protocol; and performing an action in response to the control data message received, wherein the controlled device is configured to communicate using the data communications protocol, and wherein the controller device is configured to communicate using the hypermedia data communications protocol.
 52. A method of receiving status information from a consumer electronics device at a remote data processing device, the method comprising: sending a hypermedia data message to the remote device using a hypermedia data communications protocol over a proximity bearer, the hypermedia data message comprising data representing the state of the consumer electronics device; receiving the hypermedia data message using the hypermedia data communications protocol over the proximity bearer; and presenting the hypermedia data message to a user of the remote device using a man-machine interface of the remote device, wherein the consumer electronics device and remote device both are configured to communicate using the hypermedia data communications protocol over the proximity bearer.
 53. A method of receiving status information from a consumer electronic device at a remote data processing device, the method comprising: sending a data message to a mediating data processing device using a data communications protocol, the mediating data processing device being configured to communicate using both the data communications protocol and a hypermedia data communications protocol, the data message comprising data representing the state of the consumer electronics device; in response to the data message received, sending a hypermedia data message to the remote device using the hypermedia data communication protocol over a proximity bearer, the hypermedia data message comprising data representing the state of the consumer electronics device; receiving the hypermedia data message using the hypermedia data communications protocol over the proximity bearer; and presenting the hypermedia data message to a user of the remote device using a man-machine interface of the remote device, wherein the remote data processing device is configured to communicate using the hypermedia data communications protocol over the proximity bearer, and wherein the consumer electronics device is configured to communicate using the data communications protocol.
 54. A consumer electronics device adapted to provide a remote data processing device with control data that enables a user to control the operation of the consumer electronics device, the consumer electronics device comprising: a first portion configured to generate a hypermedia data message, the hypermedia data message comprising data representing one or more menu options, the menu options corresponding to one or more actions configured to be performed by the consumer electronics device in response to receiving a control message corresponding to one or more of the menu options; and a second portion configured to send the hypermedia data message to the remote data processing device using a hypermedia data communications protocol, wherein the consumer electronics device is configured to communicate using the hypermedia data communications protocol.
 55. A consumer electronics device adapted to provide a remote data processing device with data representing the operational state of the consumer electronics device, the consumer electronics device comprising: a first portion configured to generate a hypermedia data message in dependence on the operational state of the consumer electronics device; and a second portion configured to send the hypermedia data message to the remote data processing device using a hypermedia data communications protocol, wherein the consumer electronics device are configured to communicate using the hypermedia data communications protocol.
 56. A consumer electronics device adapted to be controlled using a remote data processing device, the consumer electronics device comprising: a first portion configured to generate a hypermedia data message, the hypermedia data message comprising data representing one or more menu options, the menu options corresponding to one or more actions configured to be performed by the consumer electronics device in response to receiving a control message corresponding to one or more of the menu options; a second portion configured to send a hypermedia data message to the remote data processing device using a hypermedia data communications protocol; a third portion configured to receive a control message from the remote data processing device using the hypermedia data communications protocol; and a fourth portion configured to perform one or more actions in response to a received control message, wherein the consumer electronics device is configured to communicate using the hypermedia data communications protocol.
 57. A control unit for a consumer electronics device, the control unit being adapted to provide a remote data processing device with control data that enables a user to control the operation of the consumer electronics device, the control unit comprising: a first unit configured to determine the operational state of the consumer electronics device; a second unit configured to generate a hypermedia data message, the hypermedia data message comprising data representing one or more menu options, the menu options corresponding to one or more actions configured to be performed by the consumer electronics device; and a third unit configured to send the hypermedia data message to the remote data processing device using a hypermedia data communications protocol.
 58. A control unit for a consumer electronics device, the control unit being adapted to provide a remote data processing device with data representing the operational state of the consumer electronics device, the control unit comprising: a first unit configured to determine the operational state of the consumer electronics device; a second unit configured to generate a hypermedia data message in dependence on the operational state of the consumer electronics device; and a third unit configured to send the hypermedia data message to the remote data processing device using a hypermedia data communications protocol.
 59. A control unit for a consumer electronics device, the control unit comprising: a first unit configured to generate a hypermedia data message, the hypermedia data message comprising data representing one or more menu options, the menu options corresponding to one or more actions configured to be performed by the consumer electronics device in response to receiving one or more control messages corresponding to one or more of the menu options; a second unit configured to send the hypermedia data message to a remote data processing device using a hypermedia data communications protocol; a third unit configured to receive a control message from a remote data processing device; and a fourth unit configured to control the consumer electronics device to perform one or more actions in response to a received control message.
 60. The integrated circuit according to claim 22, further comprising a microprocessor control unit configured to control the communication unit and the interface unit. 